This repository was archived by the owner on Sep 3, 2025. It is now read-only.
[IPF-87-1] DKIM record validation updated in ParsePublicKey().#9
Merged
[IPF-87-1] DKIM record validation updated in ParsePublicKey().#9
Conversation
da91a5c to
49fb29c
Compare
49fb29c to
b2f53ea
Compare
There was a problem hiding this comment.
Pull Request Overview
This PR improves DKIM record parsing and validation by introducing explicit error constants and enabling the collection of multiple errors during parsing. Key changes include:
- Adding new error constants and updating error messages.
- Refactoring ParsePublicKey to return a slice of errors, accumulating all validation issues.
- Adjusting tests and cache logic to account for the updated error handling and removing obsolete tool dependency code.
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| dkim.go | Updated constants, ParsePublicKey and validatePublicKey to support multiple error reporting. |
| dkim_test.go | Updated tests to reflect the new multi-error handling and error joining logic. |
| internal/tooldeps/toolsdeps.go | Removed unused tool dependency file. |
Comments suppressed due to low confidence (1)
dkim.go:726
- [nitpick] The variable 'required' is used to track if the mandatory 'p' tag is present. For improved clarity, consider renaming it to 'pTagFound' or a similar descriptive name.
var errs []error
required := false
dmotylev
approved these changes
Mar 17, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR improves DKIM record parsing and validation and enhances error handling.
1. New Error Definitions
The patch introduces explicit error constants to improve clarity and debugging:
ErrEmptyRecord: Indicates an empty DKIM record.ErrUnsupportedVersion: Indicates an unsupported DKIM record version.ErrUnsupportedAlgorithm: Indicates an unsupported algorithm in DKIM.ErrDecodeBase64: Indicates errors during base64 decoding.ErrParsePublicKey: Indicates failures during public key parsing.ErrUnsupportedServices: Indicates unsupported service types listed in the DKIM key.ErrMissedPTag: Indicates the absence of the mandatoryptag.2. Improvements in
ParsePublicKeyMultiple Error Reporting:
The function now collects and returns multiple errors encountered during parsing instead of halting after the first error.
Updated Function Signature:
ParsePublicKeyreturns a slice of errors ([]error) instead of a single error.